//! # CardOwner
//!
//! 玩家卡组控制器

/// 牌局数据控制器
///
/// 卡组的拥有者 -> 玩家
#[derive(Debug, Clone, Default)]
pub struct Owner {
    /// 玩家 index
    pub(super) index: usize,

    /// 手牌堆
    ///
    /// 摸牌到此处
    pub(super) cards: Vec<usize>,

    /// 装备牌堆
    pub(super) equipment: Vec<usize>,

    /// 判定牌堆
    pub(super) judge: Vec<usize>,
}

impl Owner {
    /// 获取玩家手中卡组数量
    pub fn count(&self) -> usize {
        self.cards.len() + self.equipment.len() + self.judge.len()
    }

    pub fn check_cards_count(&self) {
        assert_eq!(self.index, self.count());
        unimplemented!()
    }

    pub fn new(index: usize) -> Self {
        Self {
            index,
            ..Default::default()
        }
    }
}
